﻿/*************************************************************************************

- CLR版本：        4.0.30319.42000
- 类 名 称：       ReadImage
- 机器名称：       YTE
- 命名空间：       LD.Tool.Vision
- 文 件 名：       ReadImage
- 创建时间：       2022/7/14 15:11:16
- 作    者：       YTE
- 说   明：
- 修改时间：
- 修 改 人：
  *************************************************************************************/

using LD.Host;
using LD.Vision;
using System;

namespace LD.Tool
{
    [Tool(FrmParam = "ThresholdFrm", Text = "阈值分割", ToolType = ToolEnum.Vision)]

    class Threshold : BaseTool
    {
        public override OpResult Execute(TB_Tool model)
        {
            stopwatch.Start();
            try
            {
                var param = Newtonsoft.Json.JsonConvert.DeserializeObject<ThresholdParam>(model.Param);
                if (param != null)
                {
                    if (CameraFactory.Instance.CameraList.ContainsKey(param.Camera))
                    {
                        var camera = CameraFactory.Instance.CameraList[param.Camera];

                        var reg = FrmVisionMain.Instance.HWindow[camera.Name].Image.Threshold((double)param.MinThres, param.MaxThres);

                        FrmVisionMain.Instance.HWindow[camera.Name].DispObj(reg);

                        isSuccess = true;
                    }
                }
                Log(model, "运行结束", LogLevel.一般);
            }
            catch (Exception ex)
            {
                Log(model, ex.Message, LogLevel.严重);
            }
            finally
            {
                stopwatch.Stop();
            }
            return new OpResult() { IsSuccess = isSuccess, ExecuteTime = stopwatch.ElapsedMilliseconds };
        }
    }
}
